#pragma once

#include "Containers/String.h"
#include "Containers/Any.h"

namespace WH
{
    //serialize simple types
    WHENGINE_API bool IsStringSerializeable(const CType* InType);

    WHENGINE_API CString SerializeAnyToString(CAny InAny);
    WHENGINE_API CAny DeserializeAnyFromString(const CString& InString, CType* InType);

    //serialize instance
    WHENGINE_API CString SerializeInstanceToString(CType* InType,const void* InInstance);
    WHENGINE_API void DeserializeInstanceFromString(const CString& InString, CType* InType,void* OutInstance);
};